package cn.yeziji.netty.enums;

import cn.yeziji.netty.adapter.*;
import lombok.AllArgsConstructor;
import lombok.Getter;

/**
 * 消息聚合类
 *
 * @author gzkemays
 * @since 2022/11/08 12:36 PM
 */
@Getter
@AllArgsConstructor
public enum MessageClusterEnum {
  /** 心跳检测 */
  HEART(CommunicationAdapters.class, HeartAdapter.class),
  /** 用户登出 */
  USER_LOG_OUT(CommunicationAdapters.class, UserLogOutAdapter.class),
  /** 用户登录 */
  USER_LOGIN(CommunicationAdapters.class, UserLoginAdapter.class),
  /** 私有聊天室 */
  PRIVATE_CHAT(CommunicationAdapters.class, PrivateChatAdapter.class),
  /** 退出私有聊天室 */
  PRIVATE_CHAT_EXIT(CommunicationAdapters.class, PrivateChatExitAdapter.class),
  /** 公共聊天室 */
  PUBLIC_CHAT(CommunicationAdapters.class, PublishChatAdapter.class),
  /** 退出公共聊天室 */
  PUBLIC_CHAT_EXIT(CommunicationAdapters.class, PublicChatExitAdapter.class),
  /** 留言簿 */
  GUESTBOOK(CommunicationAdapters.class, GuestbookAdapter.class);
  final Class<CommunicationAdapters> communicationAdaptersClass;

  final Class<? extends CommunicationAdapters> clusterAdapterClass;
}
